package com.zhiyou.rabbitmq.topics;

import com.rabbitmq.client.Channel;
import com.rabbitmq.client.Connection;
import com.rabbitmq.client.ConnectionFactory;

/**
 * @author by zhouyanchao
 * Created on 2018/3/13.
 * Descr:
 */
public class TopicSend {
	private static final String EXCHANGE_NAME = "topic_logs";

	public static void main(String[] argv) {
		Connection connection = null;
		Channel channel = null;
		try {
			ConnectionFactory factory = new ConnectionFactory();
			factory.setHost("localhost");

			connection = factory.newConnection();
			channel = connection.createChannel();
//          声明一个匹配模式的交换器
			channel.exchangeDeclare(EXCHANGE_NAME, "topic");

			// 待发送的消息
			String[] routingKeys = new String[]{"quick.orange.rabbit",
					"lazy.orange.elephant",
					"quick.orange.fox",
					"lazy.brown.fox",
					"quick.brown.fox",
					"quick.orange.male.rabbit",
					"lazy.orange.male.rabbit"};
//          发送消息
			for(String severity :routingKeys){
				String message = "From "+severity+" routingKey' s message!";
				channel.basicPublish(EXCHANGE_NAME, severity, null, message.getBytes());
				System.out.println("TopicSend [x] Sent '" + severity + "':'" + message + "'");
			}

		} catch (Exception e) {
			e.printStackTrace();
		} finally {
			if (connection != null) {
				try {
					connection.close();
				} catch (Exception ignore) {
				}
			}
		}
	}
}
